
#
# 表达式
# 对象
# 符号
# 

######################################################
# 一切皆函数
######################################################
1 + 1
'+'(1,1)
x <- 2
'<-'(x, 4)

x1 <- 2
x2 <- 4
if(x1 > x2) "大于" else "小于"
'if'(x1 > x2, "大于", "小于")

x <- c(1, 2, 3, 4)
x[2]
'['(x, 2)

######################################################
# 一切皆对象
######################################################
x <- function(i) i^2
x(2)

######################################################
# 特殊值
######################################################

#NA缺失值
v <- c(1, 2, 3)
length(v) <- 4
v

#Inf无穷大
2^1024
-2^1024
1 / 0

# NaN无意义值
0 / 0

# NULL未赋值

######################################################
# 类型强制转换
######################################################

x <- c(1, 2, 3, 4, 5)
x
typeof(x)
class(x)
x[2] <- "hat"
x
typeof(x)
class(x)

#强制转换顺序：logical<integer<numeric<complex<character<list
#               逻辑    整型    数值    复数型   字符型  列表


######################################################
# R的工作过程
######################################################

# 解析表达式
f <- quote(if(x > 1) "大于1" else "小于等于1")
# print方法信息过于简单，使用列表查看解析
list <- as(f, "list")
lapply(list, typeof)

df <- deparse(f)
df
x = 3
if(x > 1) "大于1" else "小于等于1"
